<?php
	function creationPanier(){
		if (!isset($_SESSION['panier']['produits'])){
			$_SESSION['panier']=array();
			$_SESSION['panier']['produits'] = array();
			$_SESSION['panier']['verrou'] = false;
		}
		return true;
	}

	function checkProduct($id_user,$firstname,$lastname,$dates,$duration,$categorie,$price,$id_availability){
		$check = checkUserAvailability($id_user,$firstname,$lastname,$duration,$price,$id_availability);
		if(!empty($check)){
			$check2 = getCategorieByName($categorie,$id_user);
			if(!empty($check2)){
				$check3 = checkDatesInYear($check[0]['date_begin'],$check[0]['daily'],$check[0]['weekly'],$check[0]['monthly'],$check[0]['yearly']);
				if(!empty($check3)){
					foreach ($check3['dates'] as $tabDates) {
						if($tabDates == $check[0]['date_begin']){
							return 1;
						}
					}
				}
			}
		}
		return 0;
	}

	function checkDatesInYear($date_begin,$daily,$weekly,$monthly,$yearly){
		$tabDates = array(
			'dates' => array()
		);
		$offset = 0;
		$temp = $offset;
		$limit = 365;
		$pas = null;
			$newDate = new DateTime($date_begin);
			$offset = $temp;
			if($daily){	
				$pas = 	'+1 day';
			}
			elseif($weekly){	
				$pas = 	'+7 day';	
			}
			elseif($monthly){	
				$pas = 	'+1 month';	
			}
			elseif($yearly){
				$pas = 	'+1 year';
			}
			else{
				$date = date_format($newDate, 'Y-m-d H:i:s');	
				array_push($tabDates['dates'], $date);
				return $tabDates;
			}

			// avance de n date selon le offset pour avoir le bon décalage.
			for($i=0; $i < $offset; $i++) { 
				date_modify($newDate, $pas);
			}

			while ($offset < $limit){
				// Rempli la première date déjà bonne avecla première actualisation de la date
				$date = date_format($newDate, 'Y-m-d H:i:s');		
				array_push($tabDates['dates'], $date);		
				// incrémente d'un pas.
				date_modify($newDate, $pas);
				$offset++;
			}
		return $tabDates;
	}

	function ajouterArticle($id_user,$firstname,$lastname,$dates,$duration,$categorie,$price,$id_availability){
	   //Si le panier existe
	   if(creationPanier() && !isVerrouille()){
			//Sinon on ajoute le produit
	   		foreach ($_SESSION['panier']['produits'] as $products) {
	   			if($dates == $products['dates'] && $id_availability == $products['id_availability']){
	   				return;
	   			}
	   		}
	   		
	   		$produitTmp;
			$produitTmp['id_user'] = $id_user;
			$produitTmp['firstname'] = $firstname;
			$produitTmp['lastname'] = $lastname;
			$produitTmp['dates'] = $dates;
			$produitTmp['duration'] = $duration;
			$produitTmp['categorie'] = $categorie;
			$produitTmp['id_availability'] = $id_availability;
			$produitTmp['price'] = $price;
			array_push( $_SESSION['panier']['produits'], $produitTmp);
	   }
	   else
	   echo "Un problème est survenu veuillez contacter l'administrateur du site.";
	}

	function supprimerArticle($dates,$id_availability){
		//Si le panier existe
		if (creationPanier() && !isVerrouille() && !empty($_SESSION['panier']['produits'])){
			//Nous allons passer par un panier temporaire
			$panierTmp['produits'] = array();
			$panierTmp['verrou'] = $_SESSION['panier']['verrou'];

			foreach ($_SESSION['panier']['produits'] as $product) {
				if($product['dates'] != $dates || $product['id_availability'] != $id_availability){
					$panierTmp['produits'][] = $product;
				}
		    }
		  //On remplace le panier en session par notre panier temporaire à jour
		    $_SESSION['panier']['produits'] = null;
		    $_SESSION['panier']['verrou'] = false;
		    if(!empty($panierTmp['produits'])){
				$_SESSION['panier']= $panierTmp;
			}

		  //On efface notre panier temporaire
		  unset($panierTmp);
		}
		else
		echo "Un problème est survenu veuillez contacter l'administrateur du site.";
	}

	function supprimerMesArticle($id_user){
		//Si le panier existe
		if (creationPanier() && !isVerrouille() && !empty($_SESSION['panier']['produits'])){
			//Nous allons passer par un panier temporaire
			$panierTmp['produits'] = array();
			$panierTmp['verrou'] = $_SESSION['panier']['verrou'];

			foreach ($_SESSION['panier']['produits'] as $product) {
				if($product['id_user'] != $id_user){
					$panierTmp['produits'][] = $product;
				}
		    }
		  //On remplace le panier en session par notre panier temporaire à jour
		    $_SESSION['panier']['produits'] = null;
		    $_SESSION['panier']['verrou'] = false;
		    if(!empty($panierTmp['produits'])){
				$_SESSION['panier']= $panierTmp;
			}
		  //On efface notre panier temporaire
		  unset($panierTmp);
		}
		else
		echo "Un problème est survenu lors de la suppression de l'un de vos articles veuillez contacter l'administrateur du site.";
	}

	function MontantGlobal(){
	    $total=0;
	    foreach ($_SESSION['panier']['produits'] as $product) {
	   		$total += $product['price'];
	    }
	    return $total;
	}

	function isVerrouille(){
	   if (isset($_SESSION['panier']) && $_SESSION['panier']['verrou'])
	   return true;
	   else
	   return false;
	}

	function supprimePanier(){
		unset($_SESSION['panier']);
	}
?>